草庐IT

Ruby File 类和方法

全部标签

c# - 将由返回字符分隔的字符串转换为 List<string> 的最佳方法是什么?

我需要经常将“字符串block”(包含返回字符的字符串,例如来自文件或文本框)转换为List.有什么方法比下面的ConvertBlockToLines方法更优雅?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceTestConvert9922{classProgram{staticvoidMain(string[]args){stringtestBlock="lineone"+Environment.NewLine+"linetwo"+Environment.NewLine+"linethree"

c# - 扩展方法如何连接

我只是想知道扩展方法是如何连接到原始类的。我知道在IL代码中它调用了静态方法,但它是如何调用的以及为什么它不破坏封装。 最佳答案 他们不“Hook”。VisaulStudioIDE只是通过在intellisense列表中显示它们来让它看起来像它。编译器“知道”如何处理引用,以便使用正确的参数进行正确的方法调用。这就是syntacticsugar-这些方法只是单独静态类上的静态方法。使用this修饰符让编译器“知道”添加ExtensionAttribute到类以将其标记为扩展方法。由于扩展方法实际上不更改类并且只能访问其上的公共(pu

C# 重载返回类型 - 推荐方法

我有一种情况,我只是希望方法重载的返回类型不同,但在C#中不能这样做。处理此问题的最佳方法是什么?我需要这个是否意味着我的程序结构有缺陷?鉴于这在C#中是不可能的,推荐的方法是什么? 最佳答案 通常,您只需为方法指定不同的名称。一个例子是IDataReader和GetInt32,GetInt64等老实说,我相信这通常会让您更​​清楚地了解您想要做什么-特别是如果您随后调用一个重载方法并得到结果:Console.WriteLine(reader.GetInt32());//ThisisclearConsole.WriteLine(fo

c# - 检查内部方法是否传递了一些可选参数

如何检查可选参数是否传递给方法?publicvoidExampleMethod(intrequired,stringoptionalstr="defaultstring",intoptionalint=10){if(optionalintwaspassed)return;}另一种方法是使用Nullable.HasValue(MSDNdefinitions,MSDNexamples):intdefault_optionalint=0;publicvoidExampleMethod(intrequired,int?optionalint,stringoptionalstr="default

c# - 将 LINQ 与 CancellationToken 一起使用的正确方法

我正在尝试使用CancellationToken编写支持取消的LINQ查询.NET框架中提供的机制。但是,尚不清楚结合取消和LINQ的正确方法是什么。使用PLINQ,可以这样写:varresultSequence=sourceSequence.AsParallel().WithCancellation(cancellationToken).Select(myExpensiveProjectionFunction).ToList();不幸的是,WithCancellation()仅适用于ParallelEnumerable-因此它不能与普通的旧LINQ查询一起使用。当然,可以使用With

c# - 以下方法 : Identical. NameSpace.InitializeComponent() 和 Identical.NameSpace.InitializeComponent() 之间的调用不明确

好吧,我怀疑这可能是VisualStudio的问题,但肯定有一些原因。我从默认项目列表创建了一个ListBox(右键单击项目或项目中的文件夹->添加->新项目->XamlListBox)。我立即收到一strip有错误的红色波浪线:"Error2Thecallisambiguousbetweenthefollowingmethodsorproperties:'Identical.NameSpace.ListBox1.InitializeComponent()'and'Identical.NameSpace.ListBox1.InitializeComponent()'C:\Documen

c# - 从用户输入的逗号分隔字符串中删除所有额外空格到数组中的最干净的方法是什么

程序让用户在数组中输入逗号分隔的字符串:basketball,baseball,soccer,tennis逗号之间可以有空格,也可以没有。如果这个字符串只是逗号上的split(),那么数组中的某些项目可能在它们之前或之后有空格。清理它的最佳方法是什么? 最佳答案 您可以为此使用Regex.Split:string[]tokens=Regex.Split("basketball,baseball,soccer,tennis",@"\s*,\s*");正则表达式\s*,\s*可以读作:“匹配零个或多个空白字符,后跟逗号和零个或多个空白字

c# - Get 方法的大小

就代码行而言,对于“获取”的大小是否有任何指导方针或普遍共识?我有一个成员的Get方法,这里的代码很容易增长到30行。我不确定应该在什么时候将其提取到方法中。但后来我只会将其称为GetMyString之类的名称并将值分配给另一个成员并在构造函数中调用它。这样做值得吗?这对SO来说太主观了吗? 最佳答案 dcastro的回答很好,但可以使用一些扩展:没多久就回来了这还没有量化;让我们量化一下。一个属性所花的时间不应超过获取字段所花时间的十倍。它不连接到外部资源(数据库、服务等)那些很慢,因此通常属于第一条规则,但还有第二个方面:失败应

c# - C#中的默认方法参数

如何使方法具有默认参数值? 最佳答案 您只能在C#4中执行此操作,它同时引入了namedargumentsandoptionalparameters:publicvoidFoo(intx=10){Console.WriteLine(x);}...Foo();//Prints10请注意,默认值必须是一个常量-一个正常的编译时常量(例如文字)或:值类型的无参数构造函数default(T)对于某些类型T另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数)-因此,如果您更改默认值而不重建调用代码,您仍然会看到旧值。这(以及C#4中

c# - 我可以在 Rhino-Mocks 3.6 中使用 AAA 语法测试方法调用顺序吗?

是否可以在Rhino-mocks3.6中使用AAA语法测试以下示例,如果方法1调用1st,然后调用方法2,然后调用方法3,在Rhino-mocks3.6中?//Assertvarmock=MockRepository.GenerateMock();//ActmyObject.Service=mock;//HowshouldIchangethisparttoensurethatRhinoMockscheckthecallorderaswell?mock.AssertWasCalled(m=>m.Method1());mock.AssertWasCalled(m=>m.Method2())